{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "7abb6558",
   "metadata": {},
   "source": [
    "# 1.列出目标方程\n",
    "$$\n",
    "n(x) = (\\frac{1}{2}(2x)^{\\frac{1}{2}} * sigma)  e^{\\frac{- x ^ 2}{2sigma ^ 2}}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cb15a6b1",
   "metadata": {},
   "source": [
    "# 2. 列出相关系数条件\n",
    "$$\n",
    "sigma = 20dx\n",
    "$$\n",
    "D = 1  \\\n",
    "u = 40 * D\\\n",
    "E = 0 ,10\\\n",
    "tal = 0.01\\\n",
    "dx = 0.001\\\n",
    "dt = 1e-5 ,5e-6\\\n",
    "t:[0,4000dt]\\\n",
    "x:[-2000dx ,2000dx]\\\n",
    "(这充当一个草稿的作用)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dd99834c",
   "metadata": {},
   "source": [
    "# 3.先导入必要的库函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "12c48212",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e81d7fc5",
   "metadata": {},
   "source": [
    "# 4.然后将上述的相关系数条件定义"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "abe5290b",
   "metadata": {},
   "outputs": [],
   "source": [
    "dt = 1e-5\n",
    "dx = 0.001\n",
    "D = 1\n",
    "mu = 40 * D\n",
    "E = 10\n",
    "tal = 0.01"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "31e482d0",
   "metadata": {},
   "outputs": [],
   "source": [
    "gamma = mu * E * dt / dx\n",
    "sigma = D * dt / dx ** 2"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "53c80d2d",
   "metadata": {},
   "source": [
    "# 5. 再按照方程定义出各个项的系数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "25198880",
   "metadata": {},
   "outputs": [],
   "source": [
    "a = - sigma / 2 \n",
    "b = 1 + sigma + dt / tal + gamma\n",
    "c = - sigma / 2 - gamma\n",
    "d = -a\n",
    "e = 1 - sigma\n",
    "f = d"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "5bdec43c",
   "metadata": {},
   "outputs": [],
   "source": [
    "tbegin = 0\n",
    "tend = dt * 5000 + dt\n",
    "tarr = np.arange(tbegin, tend, dt)\n",
    "xbegin = - 2 * 500 * dx\n",
    "xend = (2 * 500 + 1)* dx\n",
    "xarr = np.arange(xbegin, xend, dx)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "92cb5932",
   "metadata": {},
   "source": [
    "# 6.构造矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "9075dbe7",
   "metadata": {},
   "outputs": [],
   "source": [
    "A = np.identity(xarr.size - 2)\n",
    "B = np.roll(A, 1)\n",
    "C = np.roll(A, -1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "d0e30b00",
   "metadata": {},
   "outputs": [],
   "source": [
    "B[0, 0] = 0\n",
    "C[-1, -1] = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "2cede788",
   "metadata": {},
   "outputs": [],
   "source": [
    "A1 = b * A + c * B + a * C\n",
    "A2 = e * A + f * B + d * C\n",
    "A3 = np.linalg.inv(A1) @ A2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "8e6103cb",
   "metadata": {},
   "outputs": [],
   "source": [
    "width = 10 * dx\n",
    "ubegin = 1 / np.sqrt(2 * np.pi) / width * np.exp(- xarr ** 2 / 2 / width ** 2)\n",
    "uarr = np.zeros((xarr.size - 2, tarr.size))\n",
    "uarr[:, 0] = ubegin[1:-1]\n",
    "ucurrent = uarr[:, 0]\n",
    "for i in range(1, 5000):\n",
    "    unext = A3 @ ucurrent\n",
    "    uarr[:, i] = unext\n",
    "    ucurrent = unext"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "78dc5259",
   "metadata": {},
   "source": [
    "# 7. 做图展示"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "aa14d82a",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x1dd00b18790>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "uarr = np.zeros((5000 , 5000))\n",
    "for i in range(5000):\n",
    "    for j in range(5000):\n",
    "        uarr[i , j] = 255 - i + j\n",
    "plt.imshow(uarr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bf492ec3",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
